package com.yzy.fly.annotation;

import com.yzy.fly.kernel.model.ParentIdType;
import com.yzy.fly.kernel.model.ability.sql.DefaultRoleSqlBuilder;
import com.yzy.fly.kernel.model.ability.sql.RoleSqlBuilder;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(value = ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ParentId {
    String value() default "";
    ParentIdType type() default ParentIdType.OUTSIDE;
    String tableName() default "";
    int order() default 0;
    Class<?> parentClass() default Object.class;
    boolean sqlWhereWithOtherParentIds() default false;

    Class<? extends RoleSqlBuilder> sqlBuildClass() default DefaultRoleSqlBuilder.class;
}
